GDK_EXPOSE GtkWidget::expose_event
-gtk_widget_ref() vs. gtk_object_ref()
--------------------------------------
-
-The widget referencing functions gtk_widget_ref() and gtk_widget_unref()
-are currently just wrappers about the corresponding referencing functions
-for objects. Still you should use the widget referencing functions if you
-are sure the referenced object is of type GTK_WIDGET_TYPE.
-
-
Writing Gdk functions
---------------------
snippet:</para>
<programlisting role="C">
- gtk_widget_ref(widget);
+ g_object_ref(widget);
gtk_container_remove(GTK_CONTAINER(old_parent), widget);
gtk_container_add(GTK_CONTAINER(new_parent), widget);
- gtk_widget_unref(widget);
+ g_object_unref(widget);
</programlisting>
</sect1>
/* gtk_container_remove() will unparent the child and therefore
* cause its reference count to be decremented by one.
*/
- gtk_widget_ref (widget);
+ g_object_ref (widget);
gtk_container_remove (container, widget);
/* without the reference count, the widget would have been destroyed here.
*/
gtk_container_add (container, widget);
- gtk_widget_unref (widget);
+ g_object_unref (widget);
/* all items in item_list need to be referenced
slist = NULL;
for (list = item_list; list; list = list->next)
{
- gtk_widget_ref (GTK_WIDGET (list->data));
+ g_object_ref (GTK_WIDGET (list->data));
slist = g_slist_prepend (slist, list->data);
}
gtk_list_remove_items (list, item_list);
tmp = slist;
slist = slist->next;
- gtk_widget_unref (GTK_WIDGET (tmp->data));
+ g_object_unref (GTK_WIDGET (tmp->data));
g_slist_free_1 (tmp);
}
do something like the following:
<tscreen><verb>
-gtk_widget_ref (tree);
+g_object_ref (tree);
owner = GTK_TREE(tree)->tree_owner;
gtk_container_remove (GTK_CONTAINER(tree), item);
if (tree->parent == NULL){
gtk_tree_item_set_subtree (GTK_TREE_ITEM(owner), tree);
}
else
- gtk_widget_unref (tree);
+ g_object_unref (tree);
</verb></tscreen>
Finally, drag-n-drop <em>does</em> work with TreeItems. You just
tendrá que hacer algo así:
<tscreen><verb>
-gtk_widget_ref (arbol);
+g_object_ref (arbol);
propietario = GTK_TREE(arbol)->tree_owner;
gtk_container_remove (GTK_CONTAINER(arbol), item);
if (arbol->parent == NULL){
gtk_tree_item_set_subtree (GTK_TREE_ITEM(propietario), arbol);
}
else
- gtk_widget_unref (arbol);
+ g_object_unref (arbol);
</verb></tscreen>
Finalmente, hay que mencionar que la opción de drag-n-drop (arrastar y
void gtk_requisition_free (GtkRequisition *requisition);
#if defined (GTK_TRACE_OBJECTS) && defined (__GNUC__)
-# define gtk_widget_ref gtk_object_ref
-# define gtk_widget_unref gtk_object_unref
+# define gtk_widget_ref g_object_ref
+# define gtk_widget_unref g_object_unref
#endif /* GTK_TRACE_OBJECTS && __GNUC__ */
void _gtk_widget_grab_notify (GtkWidget *widget,